package ZengJiHong2.Test2;

import java.time.LocalDate;
import java.util.*;

/**
 * @ClassName test2
 * @Author 16799
 * @Date 2025/8/19 19:43
 * @Version 1.0
 * @Description TODO
 *
 * 时间：2025年8月19日19:43:49
 *      这个是我六个demo里面唯一写出来的，再写一次
 **/
public class test2 {
    public static void main(String[] args) {
        String userStrs = "10001:张三:男:1990-01-01#10002:李四:女:1989-01-09#10003:王五:男:1999-09-09" +
                "#10004:刘备:男:1899-01-01#10005:孙悟空:男:1900-01-01#10006:张三:女:1999-01-01" +
                "#10007:刘备:女:1999-01-01#10008:张三:女:2003-07-01#10009:猪八戒:男:1900-01-01";

        List<user> userList = new ArrayList<>();
        String[] split1 = userStrs.split("#");
        System.out.println("按照#分割后的字符数组： ");
        System.out.println(Arrays.toString(split1));

        for (String s : split1) {
            String[] split2 = s.split(":");
            user user = new user();
            user.setId(Long.valueOf(split2[0]));
            user.setName(split2[1]);
            user.setGender(split2[2]);
            user.setBirthday(LocalDate.parse(split2[3]));

            userList.add(user);
        }
        System.out.println("解析后的字符串，对象列表： ");
        System.out.println(userList);

        Map<String,Integer> userMap = new HashMap<>();
        //想用stream流，但是报错，这个加个{}，需要在哪里打;吗，错在哪里
/*        userList.stream().filter(u->{
            userMap.keySet().contains(u.getName()) ? userMap.put(u.getName(),userMap.get(u.getName())+1) : userMap.put(u.getName(),1)
        }).forEach(s-> System.out.println(s));
        */
        for (user u : userList) {
            String name = u.getName();
            if (userMap.keySet().contains(u.getName())){
                userMap.put(name,userMap.get(name)+1);
            }else {
                userMap.put(u.getName(),1);
            }
        }

        System.out.println("得到的map集合为： "+userMap);
        userMap.forEach((k,v)-> System.out.println(k+"出现了"+v+"次"));
    }
}
